A “service combination” is about realizing a new service by combining services among a plurality of existing services with the use of all of or part of the output data of a service as the input data of another service. Examples of services to be realized through the service combination include a business process created by joining web services, such as WS-BPEL (Web Services Business Process Execution Language), and a mashup service created by using web APIs.
To realize a new service by using a service combination technique, it is necessary to create a service combination definition that define a data flow among services. Conventionally, a developer refers to each service definition, and creates a service combination definition while checking data items connectable among respective services. Therefore, There is a problem that a service combination definition cannot be created with high efficiency.
To solve this problem, the following technique has been suggested (see Patent Document 1, for example). As shown in FIG. 15, the technique disclosed in Patent Document 1 involves an input/output combination generating unit 100 and a service connection history storage unit 101. The connection history of the input/output data about the services in the past software design is stored in the service connection history storage unit 101. Upon receiving a service process flow 102 defining the execution sequence of services and a service ID 103 indicating a specific service among the services, the input/output combination generating unit 100 selects combinations with high connection probabilities from the combinations of the input data item of the service specified by the service ID and the output data items of other services, based on the service connection history registered in the service connection history storage unit 101, and outputs the selected combinations as an input/output combination list 104.
Also, as a technique for linking a plurality of services, the following technique is known (see Patent Document 2, for example). As shown in FIG. 16, the technique stated in Patent Document 2 involves a data associating unit 300, an application definition storage unit 301, a data association storage unit 302, and a dictionary storage unit 303. The output item names of output data and the input item names of input data are stored in the application definition storage unit 301 for respective applications. Using the dictionaries registered in the dictionary storage unit 303, the data associating unit 300 extracts combinations of input item names and output item names with identical or similar meanings from the item names registered in the application definition storage unit 301, and stores the combinations into the data association storage unit 302. At this point, the data associating unit 300 also registers application names that indicate which item name is related to which application. When a pair 304 of an input item name and an application name is input, a pair 305 of an output item name and an application name registered and associated with the pair is retrieved from the data association storage unit 302, and is then output.
[Patent Document 1] Japanese Laid-Open Patent Publication No. 2007-334627
[Patent Document 2] Japanese Laid-Open Patent Publication No. 2004-302790